package tree.test110;

import listbyorder.utils.TreeNode;

/**
 * @author code_yc
 * @version 1.0
 * @date 2020/7/16 13:03
 */
public class Solution1 {

    // 比较耗时的解法
    public boolean isBalanced(TreeNode root) {
        if (root == null) return true;
        // 分别计算左右子树的高度
        int l = getH(root.left);
        int r = getH(root.right);
        if (isBalanced(root.left) && isBalanced(root.right) && Math.abs(l - r) < 2) return true;
        return false;
    }

    private int getH(TreeNode node) {
        if (node == null) return 0;
        return Math.max(getH(node.left), getH(node.right)) + 1;
    }
}
